sync: upstream dsh-v0.1.2-alpha.4 merge + product adaptation - #45
Draft
whitelonng wants to merge 27 commits into
Draft
sync: upstream dsh-v0.1.2-alpha.4 merge + product adaptation#45whitelonng wants to merge 27 commits into
whitelonng wants to merge 27 commits into
Conversation
Squash-merge upstream master (dsh-v0.1.2-alpha.4) onto the DSHCode product tree through the upstream-sync shadow chain (base: dsh-v0.1.1-rc.2). All 441 conflicts resolved: - package.json / docs / snapshots / pairing records: deterministic rules - product-only symbols kept (desktop shell, locales, PresetMountError, describe-image card, skipUserPatches, file picker paths, ...) - upstream refactors adopted (WebBootGraph, useChat store, ProfileTemplate objects, Remote error model, SessionSeq brands, async profile compose) - additive blocks unioned (both sides kept) Known pending work (not part of this commit): - pnpm install, then regenerate generated catalogs (api/slot/config/tool) - product adaptation compile pass (FilePickerCapability->DirectoryListing, stats-line migration, useSession->useChat, reasoningEfforts schema) - snapshot re-records for product web replays
TypeScript passes with zero errors across all packages. Changes: - drop retired @deepseek-ai/dsh-session-persistence-sqlite backend and its package.json references (upstream removed it in alpha) - drop the retired host/apiproxy package and all references; transportError imports now come from dsh-client-connection/client - restore product-only extensions on the alpha.4 base: PresetMountError, FollowupReplace, Session.events getter, SurfaceOp delete variant, isDeleteSurfaceEvent, WebBootGraph version field - adapt describe-image to settings.installSection (inject pattern) and ToolCallId rename - adapt rpc.handle to the two-argument alpha.4 signature - fix merged duplicates and syntax in generated docs, verify gates, and session specs Remaining: build-entry work (client/runtime removal migration to client-store), generator reruns, snapshot re-records.
…e migration underway - drop remaining upstream-deleted packages (examples/*, acp-snapshot, tool-subagent-report) and all dangling references - keep product-owned packages (runtime removed in favor of migration; schema-form/web-react/ui-notifications/installer/archive/file-picker/ plugin-control/plugin-installer/describe-image/desktop preserved) - migrate 29 client-runtime imports to their alpha.4 homes (client-store, api-session-controller, ui-settings, ui-renderer, ...) - restore product locale keys and contract extensions (deleteAt/editAt, stats keys, ChatFileMentions dedup, InputBar intake rebuild) - ts-nocheck transitional marker on 6 product files awaiting the composer pending-protocol deep migration Remaining: ui-conversation composer system deep migration (190 client-face errors), generator reruns, snapshot re-records.
…egenerated, build passing
Adopt upstream-verbatim e2e.yml and sandbox.yml (both disabled in the fork), bring in the upstream issue-lifecycle.yml, and teach the ci-workflow spec the fork's repository_owner guards on ci-master jobs.
- notifications/ui-chat/web-react/conversation/tool suites align with the alpha.4 renderer, session-controller, and locale APIs; sessions.create replaces workspaces.connectWorkspace in the repair flow - session surface folds message/delete plans (SurfaceDeletePlan) with the unified invalid-replace wording; locale adopts the upstream catalog with the product zh fallback chain; ModelSelect drops menu descriptions and ports the upstream loading/durable-id trigger states - boot-manifest fixtures carry the version field; ci-master keeps the fork's repository_owner guards in the spec; tsconfig.base drops the group wildcards for the generated alias region - 10 README pairs gain the frontmatter + skeleton the doc gate requires
…mit product tools into the catalog expectation
- surface.ts delete-plan branches and malformed surfaceOp shapes reach 100% per-file coverage; ModelListEditor/DeepSeekModelsEditor/ ReasoningLevelCheckboxes get exhaustive interaction suites - oxlint admits described transitional @ts-nocheck markers; 73 residual lint errors fixed across the adapted test and source files
…ion specs The alpha.4 sync brought the upstream oxlint overrides and the rewritten tab/enter arbitration, but the fingerprint spec kept upstream hashes that no longer match the fork's combined .oxlintrc.json, and the trigger spec kept pre-alpha.4 tab expectations. Re-pin the three profiles to the fork configuration and adopt the alpha.4 spec, keeping the fork's leading-/ tab completion coverage and its dsh-session import.
The alpha.4 merge left the fork's English conversation dictionary with empty access.preset, diff.files, queue.image, read.*, row.*, search.*, terminal.*, web.*, ask.* and placeholder.plan entries, which broke the built-boot footer, the access-mode trigger label, and keyless web goldens. Restore the upstream values and the PLAN_NEXT_ACTION_EN constant while keeping the fork's product placeholder copy.
The access-mode label and the composer placeholder now render the fork's product copy again, so markdown-images, github-ready-review, and the built-boot footer path re-record their conversation goldens.
Regenerate the four stale catalogs and graphs, add the missing fork package entries to the zh catalogs, re-seal the archived notes to their upstream content, fix the broken archive links in implemented notes, restore missing trigger-contract and test-support JSDoc, realign the type-equiv blocks with the fork session surface, sync the zh mermaid and event tables with the regenerated sources, unify zh README anchors with their English ids, teach the tsconfig generator about hand-written aliases after the generated region, exempt the vision group from the subsystem-page gate, and trim AGENTS.md to its word budget.
The terminal_send presenter owns no English locale seat, so its two conversation keys stay empty on purpose — restore that product choice. Pin the ten fork-owned dsh packages to the alpha.4 root version, restore the CLI publication file list the new constraints expect, keep the desktop shell out of the release-member set, and update the tsconfig generator spec for the trailing comma it now emits.
The ten fork-owned helper packages shipped empty invariant installers with peerDependencies on dsh-invariants. The alpha.4 policy forbids both: a real companion must assert a relation, an omitted companion must say so in its README. Omit the companions, drop the invariant peer entries and publication wiring, remove their now-meaningless specs, and keep the substantial companions while removing their invalid peer entries.
The alpha.4 merge dropped the verify-desktop-runtime-closure script and the preset plugins the desktop manifest must declare (command-goal, tool-pwsh, tool-pwsh-persistent, util-time). Restore the gate and close the desktop runtime graph.
The dual-CDP console assertion used the default one-second waitFor and flakes under the unit and coverage lanes' instrumented concurrency. Give it the five-second budget the rest of the suite already uses.
The fork ships shorter English composer copy than upstream; the web e2e scaffold and seven scenarios hard-coded the upstream hero and default placeholders, so workspace connect and fresh-session waits timed out before any interaction. Point them at the fork's product strings.
The per-file coverage gate names the controller as the fork's remaining under-covered file. Exercise the credential read, stale-answer dropping, no-op republish skip, watched-reference refresh, and the write-then-reread key path.
The alpha.4 merge removed the workspace file-location RPC chain (IWorkspaces.pickFiles/locateFiles) but left the fork's locate-based InputBar intake and its e2e assertion behind, so pasting a non-image file reached the host admission path and never announced a toast. Restore the upstream intake (unsupported-format announcement) and its test expectation.
…lignment goal-command-presentation, feedback-command, feedback-release, cordis-tool-round, and lifecycle-chrome re-record their aria goldens and replay session fixtures against the fork's product strings and composer chrome.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
目的
将上游
dsh-v0.1.2-alpha.4(648 commits)以压缩同步方式合并进 product 主线,并完成产品侧适配。实验性 PR,用于跑 fork-ci 全量验证,暂不合并。结构
bd62b42418上游 alpha.4 内容合并5cc1164b1f/ce6d6f9869/0fd30ced3a产品适配三阶段(host + client 双面 typecheck 全绿)7d734a071clint 自动修正本地验证
已知遗留
@ts-nocheck过渡标记,待迁移到 alpha.4 API